package com.yc.rh.biz;

import java.util.List;
import java.util.Map;

import com.yc.rh.entities.PageInfo;
import com.yc.rh.entities.UserInfo;



public interface IUserInfoBiz {

	/**
	 * 会员注册
	 * @param uf：会员对象
	 * @return：返回执行后影响的行数
	 */
	public int addUserInfo(UserInfo uf);	


	/**
	 * 检查当前邮箱是否已被注册
	 * @param email：要检查的邮箱
	 * @return：如果已被注册，则返回一个大于0的数
	 */
	public int checkEmail(String email);


	/**
	 * 获取所有的已注册的邮箱信息
	 * @return：所有的已注册的邮箱
	 */
	public List<String> getAlleMmail();


	/**
	 * 会员登陆
	 * @param email:邮箱
	 * @param pwd：密码
	 * @return
	 */
	public UserInfo loginUserInfo(UserInfo uf);

	/**
	 * 分页查询用户信息，如果pageNo和pageSize为null，则查询所有
	 * @param pageNo：要查询的页数
	 * @param pageSize：每页显示的条数
	 * @return：满足条件的会员信息
	 */
	public List<UserInfo> findUserInfoByPage(PageInfo pageInfo);

	/**
	 * 多条件分页组合查询
	 * @param map：要查询的条件及对应条件的值
	 * @param pageNo：要查询的页数
	 * @param pageSize：每页显示的条数
	 * @return：满足条件的额会员信息
	 */
	public List<UserInfo> findUserInfo(Map<String,String> map,Integer pageNo,Integer pageSize);

	/**
	 * 根据注册时间查询会员信息
	 * @param startDate：注册时开始时间
	 * @param endDate：注册的结束时间
	 * @param pageNo：要查询的额页数
	 * @param pageSize：每页显示的条数
	 * @return：满足于条件的会员信息
	 */
	public List<UserInfo> findUserInfoByDate(String startDate,String endDate,Integer pageNo,Integer pageSize);

	/**
	 * 密码修改
	 * @param usid：会员编号
	 * @param cldPwd：旧密码
	 * @param newPwd：新密码
	 * @return：成功返回大于0的数
	 */
	public int updatePwd(String usid,String cldPwd,String newPwd);



	/**
	 * 会员信息修改
	 * @param uf：新的用户信息
	 * @return：成功返回大于0的数
	 */
	public int update(UserInfo uf);

	/**
	 * 会员状态信息的修改
	 * @param usid:要修改的会员编号，如果有多个用逗号隔开
	 * @return成功返回大于0的数
	 */
	public int delUserInfo(String usid);

	public int  getTotal();

	/**
	 * 通过用户编号查询用户名
	 * @return
	 */
	public String findUnameByUsid(int usid);
}
